| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import { PermissionAction } from '@supabase/shared-types/out/constants'
- import { PageContainer } from 'ui-patterns/PageContainer'
- import {
- PageHeader,
- PageHeaderAside,
- PageHeaderMeta,
- PageHeaderSummary,
- PageHeaderTitle,
- } from 'ui-patterns/PageHeader'
- import { PageSection, PageSectionContent } from 'ui-patterns/PageSection'
- import { FunctionsList } from '@/components/interfaces/Database/Functions/FunctionsList/FunctionsList'
- import DatabaseLayout from '@/components/layouts/DatabaseLayout/DatabaseLayout'
- import { DefaultLayout } from '@/components/layouts/DefaultLayout'
- import { DocsButton } from '@/components/ui/DocsButton'
- import NoPermission from '@/components/ui/NoPermission'
- import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions'
- import { DOCS_URL } from '@/lib/constants'
- import type { NextPageWithLayout } from '@/types'
- const DatabaseFunctionsPage: NextPageWithLayout = () => {
- const { can: canReadFunctions, isSuccess: isPermissionsLoaded } = useAsyncCheckPermissions(
- PermissionAction.TENANT_SQL_ADMIN_READ,
- 'functions'
- )
- if (isPermissionsLoaded && !canReadFunctions) {
- return <NoPermission isFullPage resourceText="view database functions" />
- }
- return (
- <>
- <PageHeader size="large">
- <PageHeaderMeta>
- <PageHeaderSummary>
- <PageHeaderTitle>Database Functions</PageHeaderTitle>
- </PageHeaderSummary>
- <PageHeaderAside>
- <DocsButton href={`${DOCS_URL}/guides/database/functions`} />
- </PageHeaderAside>
- </PageHeaderMeta>
- </PageHeader>
- <PageContainer size="large">
- <PageSection>
- <PageSectionContent>
- <FunctionsList />
- </PageSectionContent>
- </PageSection>
- </PageContainer>
- </>
- )
- }
- DatabaseFunctionsPage.getLayout = (page) => (
- <DefaultLayout>
- <DatabaseLayout title="Functions">{page}</DatabaseLayout>
- </DefaultLayout>
- )
- export default DatabaseFunctionsPage
|